Repo auto make wiki page - ☆Wiki Sandbox - НТЦ 'Комплексные Системы'

Csit.Delta.Util.TimeConverter

Строка определения временной зоны

Для задания правил перевода часов на летнее/зимнее время и сдвига относительно UTC используется строка специального вида. Синтаксис этой строки:

  <TzString>   ::= <TzFormula> | <TzName> | {<TzFormula>, <TzName>}
  <TzFormula>  ::= {+|-}<UtcBias>[D][{+|-}<AddBias>]
  <TzName>     ::= UTC | LOCAL | <SystemTzName> | <SpecTzName>
  <SpecTzName> ::= {D8 Russia (UTC{+|-}<UtcBiasHour>:<UtcBiasMinute>)} | {D8 Moscow}  

где

  • TzString
    Строка определения временной зоны. Она может состоять из формулы TzFormula и/или имени временной зоны TzName. Если указано и то, и другое, то TzName имеет приоритет над TzFormula.
    Двойственное определение временной зоны может быть необходимо, когда нужно указать, что было использовано местное время, и уточнить, какому именно часовому поясу это местное время соответствует. Например:
    LOCAL, Kaliningrad Standard Time
  • TzFormula
    Формула, задающая смещение относительно универсального времени и признак использования переходов на зимнее/летнее время.
     
    • UtcBias
      Величина смещения относительно UTC. Может быть задана в часах или минутах (если UtcBias > 24, то считается, что сдвиг указан в минутах).
      Перед UtcBias должен быть обязательно указан знак + или -. Если указан положительный сдвиг, то это означает, что при переводе из UTC в локальную временную зону величина времени будет увеличена на значение UtcBias (т.е. местное время опережает универсальное). Например,
      +5D     - на 5 часов вперед от UTC
      -330    - на 330 минут назад от UTC
      

       
    • D
      Признак использования переходов на зимнее/летнее время. Если буква D не указана, то переводы часов на зимнее/летнее время не используются. Например,
      +5D     - на 5 часов вперед от UTC с использованием летнего времени
      

       
    • AddBias
      Дополнительное смещение (в минутах или часах). Дополнительное смещение добавляется к величине времени после сдвига на UtcBias и применения всех правил учета разницы между зимним и летним
      временем. Например,
      +3D-1   - на 3 часа вперед от UTC c использованием летнего времени и вычитанием одного часа
      
  • TzName
    Имя временной зоны. Возможны следующие варианты значений:
     
    • UTC
      Универсальное время.
       
    • LOCAL
      Местное время.
       
    • SystemTzName
      Наименование временной зоны, известное операционной системе. Перечень зависит от версии ОС и набора обновлений. Например:
      Central Europe Standard Time
      Ekaterinburg Standard Time
      Russia Time Zone 3
      

       
    • SpecTzName
      Специальные временные зоны, определенные на уровне системы Дельта. Используются, чтобы избежать ошибок конвертирования времени между разными часовыми зонами, связанными с ошибками ОС.
      Определены специальные временные зоны для России, корректно представляющие локальное время в России с 1996 года по настоящее время вне зависимости от версии ОС и набора обновлений.
      Временная зона SpecTzName определяется как временная зона, соответствующая московскому времени, и с отдельным указанием смещения от UTC. Для московского времени определено отдельное значение:
      D8 Moscow

      Время "как в Москве", но со сдвигом от UTC на +5 часов будет определено так:
      D8 Russia (UTC+05:00)